<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>
<?php /* @var $this \Magento\Catalog\Block\Product\View\Options\Type\Date */ ?>
<?php $_option = $this->getOption(); ?>
<?php $_optionId = $_option->getId(); ?>
<div class="field<?php if ($_option->getIsRequire()) echo ' required' ?>">
  <label class="label">
      <?php echo  $this->escapeHtml($_option->getTitle()) ?>
      <?php echo $this->getFormatedPrice() ?>
  </label>
  <div class="control">

  <?php if ($_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE_TIME
      || $_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE): ?>

      <?php echo $this->getDateHtml() ?>

      <?php if (!$this->useCalendar()): ?>
      <script type="text/javascript">
require([
  "prototype",
  "Magento_Catalog/catalog/product/composite/configure"
], function(){

      window.dateOption = productConfigure.opConfig.dateOption;
      Event.observe('options_<?php echo $_optionId ?>_month', 'change', dateOption.reloadMonth.bind(dateOption));
      Event.observe('options_<?php echo $_optionId ?>_year', 'change', dateOption.reloadMonth.bind(dateOption));      
});
</script>
      <?php endif; ?>

  <?php endif; ?>

  <?php if ($_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DATE_TIME
      || $_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_TIME): ?>
      <span class="time-picker"><?php echo $this->getTimeHtml() ?></span>
  <?php endif; ?>

    <input type="hidden" name="validate_datetime_<?php echo $_optionId ?>" class="validate-datetime-<?php echo $_optionId ?>" value="" />
    <script type="text/javascript">
require([
  "jquery",
  "mage/validation"
], function(jQuery){

    //<![CDATA[
<?php if ($_option->getIsRequire()): ?>
        jQuery.validator.addMethod('validate-datetime-<?php echo $_optionId ?>', function(v) {
            var dateTimeParts = jQuery('.datetime-picker[id^="options_<?php echo $_optionId ?>"]');
            for (var i=0; i < dateTimeParts.length; i++) {
                if (dateTimeParts[i].value == "") return false;
            }
            return true;
        }, '<?php echo $this->escapeJsQuote( __('This is a required option.') )?>');
<?php else: ?>
        jQuery.validator.addMethod('validate-datetime-<?php echo $_optionId ?>', function(v) {
            var dateTimeParts = jQuery('.datetime-picker[id^="options_<?php echo $_optionId ?>"]');
            var hasWithValue = false, hasWithNoValue = false;
            var pattern = /day_part$/i;
            for (var i=0; i < dateTimeParts.length; i++) {
                if (! pattern.test(dateTimeParts[i].id)) {
                    if (dateTimeParts[i].value === "") {
                        hasWithValue = true;
                    } else {
                        hasWithNoValue = true;
                    }
                }
            }
            return hasWithValue ^ hasWithNoValue;
        }, '<?php echo $this->escapeJsQuote( __('Field is not complete') )?>');
<?php endif; ?>
    //]]>
    
});
</script>
  </div>
</div>
